#pragma once

namespace AlgoTrading
{
	namespace Common
	{
		class Event
		{
		public:
			virtual ~Event() = 0;
			virtual void Set() = 0;
			virtual void Wait() = 0;
			virtual bool Wait(int ms) = 0;
			virtual void Reset() = 0;
		};

		extern void Sleep(int ms);

		extern Event* CreateAutoResetEvent(bool initialState);
}
}